package com.example.no1admin.mapper;

import com.example.no1admin.pojo.entity.Style;
import com.example.no1admin.pojo.vo.style.StyleDetailVO;
import com.example.no1admin.pojo.vo.style.StyleListItemVO;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface StyleMapper {
    /**
     * 添加风格
     * @param style 风格数据
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int insert(Style style);

    /**
     * 根据风格id删除对应的风格数据
     * @param id 风格id
     * @return 受影响的行数，成功删除数据时，将返回1，如果id对应的数据不存在，则返回0
     */
    int deleteById(Long id);

    /**
     * 根据若干个风格id，批量删除风格数据
     * @param ids 期望删除的若干个风格数据的id
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int deleteByIds(Long... ids);

    /**
     * 根据id修改风格数据
     * @param style 风格数据
     * @return 受影响的行数，当修改成功时，将返回1，如果无此id对应的数据，将返回0
     */
    int updateById(Style style);

    /**
     * 根据名称统计此名称对应的风格数据的数量
     * @param name 风格名称
     * @return 此名称对应的风格数据的数量
     */
    int countByName(String name);

    /**
     * 根据拍摄风格id查询拍摄风格详情
     * @param id 拍摄风格id
     * @return 此拍摄风格id对应的拍摄风格数据的数量
     */
    StyleDetailVO getById(Long id);

    /**
     *查询风格列表
     * @return 风格列表的集合
     */
    List<StyleListItemVO> list();
}
